package com.bbc.core.assertion;

import cn.hutool.core.util.ArrayUtil;
import com.bbc.core.exception.ArgumentException;
import com.bbc.core.exception.BaseException;
import com.bbc.core.model.IResponse;
import java.text.MessageFormat;

public interface ArgumentExceptionAssert extends IResponse, Assert {
   default BaseException newException(Object... args) {
      String msg = this.getMessage();
      if (!ArrayUtil.isEmpty(args)) {
         msg = MessageFormat.format(this.getMessage(), args);
      }

      return new ArgumentException(this, args, msg);
   }

   default BaseException newException(Throwable t, Object... args) {
      String msg = this.getMessage();
      if (!ArrayUtil.isEmpty(args)) {
         msg = MessageFormat.format(this.getMessage(), args);
      }

      return new ArgumentException(this, args, msg, t);
   }
}
